import * as util from '@/common/js/util'
import baseRequest from "@/common/js/request.js"
/**
 * 用户登录
 */
async function userLogin() {
  try {
    // 校验Token是否过期
    const accessToken = uni.getStorageSync('token')
    if (accessToken) {
      const { data } = await checkSession()
      if (data) {
    	await wx.checkSession()
    	console.log('微信Session正常，accessToken正常，无需登录')
    	const res = await getUserInfo()
    	return res
      }
    }
  } catch (e) {
    console.log(e)
  }
  try {
    console.log('开始自动登录中')
    // 用户未登录，系统自动登录
    const { code } = await wx.login()
    if (code) {
		return baseRequest('/jcApi/account/login', { code }, 'POST')
    }else {
		util.showToast("无法获取微信用户信息", 'none', 3000, false)
		return null
	}
  } catch (e) {
    console.log(e)
  }
}

/**
 * 用户注销
 */
function userLogout() {
  return baseRequest('/jcApi/account/logout', {}, 'POST')
}

/**
 * 检查登录Session
 */
function checkSession(option) {
  return baseRequest('/jcApi/account/checkSession', option)
}

/**
 * 获取用户信息
 */
async function getUserInfo() {
	return baseRequest('/jcApi/account/userInfo')
}

/**
 * 更新用户信息
 */
async function updateUserInfo(params) {
	return baseRequest('/jcApi/account/updateUserInfo', params, 'POST')
}

/**
 * 保存用户认证
 * @param params
 */
function saveUserAuth(params) {
	return baseRequest('/jcApi/account/saveAuth', params, 'POST')
}

/**
 * 获取手机号
 */
function getPhone(encryptedData, iv) {
	return baseRequest('/jcApi/account/getPhone', {
		encryptedData,
		iv
	}, 'POST')
}

/**
 * 用户认证
 */
function userOauth(token) {
	return baseRequest('/jcApi/account/loginByTYRZ', { token }, 'POST')
}


export{
	userLogin,
	getPhone,
	saveUserAuth,
	updateUserInfo,
	getUserInfo,
	userLogout,
	userOauth
}